package com.hsurosy.domain.strategy.service;

import com.hsurosy.domain.strategy.model.valobj.RuleWeightVO;

import java.util.List;
import java.util.Map;

/**
 * @Author Hsu琛君珩
 * @Date 2024-11-16 13:25
 * @Description 抽奖规则接口
 * @Version: v1.0.0
 */
public interface IRaffleRule {

    /**
     * 查询奖品规则的锁定次数
     *
     * @param treeIds 规则树ID数组
     * @return 规则树ID与对应锁定次数的映射
     */
    Map<String, Integer> queryAwardRuleLockCount(String[] treeIds);

    /**
     * 查询指定策略ID的权重规则
     *
     * @param strategyId 策略ID，用于标识抽奖策略
     * @return 权重规则值对象列表，包含权重和奖品信息
     */
    List<RuleWeightVO> queryAwardRuleWeight(Long strategyId);

    /**
     * 查询指定活动ID的权重规则
     *
     * @param activityId 活动ID，用于标识具体活动
     * @return 权重规则值对象列表，包含权重和奖品信息
     */
    List<RuleWeightVO> queryAwardRuleWeightByActivityId(Long activityId);

}
